home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.0 / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1995-04-18  |  11.9 KB  |  338 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        FileTransfers.p
  3.  
  4.      Contains:    CommToolbox File Transfer Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT FileTransfers;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __FILETRANSFERS__}
  30. {$SETC __FILETRANSFERS__ := 1}
  31.  
  32. {$I+}
  33. {$SETC FileTransfersIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __WINDOWS__}
  38. {$I Windows.p}
  39. {$ENDC}
  40. {    Types.p                                                        }
  41. {        ConditionalMacros.p                                        }
  42. {    Memory.p                                                    }
  43. {        MixedMode.p                                                }
  44. {    Quickdraw.p                                                    }
  45. {        QuickdrawText.p                                            }
  46. {    Events.p                                                    }
  47. {        OSUtils.p                                                }
  48. {    Controls.p                                                    }
  49. {        Menus.p                                                    }
  50.  
  51. {$IFC UNDEFINED __CTBUTILITIES__}
  52. {$I CTBUtilities.p}
  53. {$ENDC}
  54. {    Dialogs.p                                                    }
  55. {        Errors.p                                                }
  56. {        TextEdit.p                                                }
  57. {    StandardFile.p                                                }
  58. {        Files.p                                                    }
  59. {    AppleTalk.p                                                    }
  60.  
  61. {$IFC UNDEFINED __CONNECTIONS__}
  62. {$I Connections.p}
  63. {$ENDC}
  64.  
  65. {$IFC UNDEFINED __FILES__}
  66. {$I Files.p}
  67. {$ENDC}
  68.  
  69. {$IFC UNDEFINED __TERMINALS__}
  70. {$I Terminals.p}
  71. {$ENDC}
  72.  
  73. {$PUSH}
  74. {$ALIGN MAC68K}
  75. {$LibExport+}
  76.  
  77. CONST
  78. { current file transfer manager version    }
  79.     curFTVersion                = 2;
  80. { FTErr    }
  81.     ftGenericError                = -1;
  82.     ftNoErr                        = 0;
  83.     ftRejected                    = 1;
  84.     ftFailed                    = 2;
  85.     ftTimeOut                    = 3;
  86.     ftTooManyRetry                = 4;
  87.     ftNotEnoughDSpace            = 5;
  88.     ftRemoteCancel                = 6;
  89.     ftWrongFormat                = 7;
  90.     ftNoTools                    = 8;
  91.     ftUserCancel                = 9;
  92.     ftNotSupported                = 10;
  93.  
  94.     
  95. TYPE
  96.     FTErr = OSErr;
  97.  
  98.  
  99. CONST
  100.     ftIsFTMode                    = 1 * (2**(0));
  101.     ftNoMenus                    = 1 * (2**(1));
  102.     ftQuiet                        = 1 * (2**(2));
  103.     ftConfigChanged                = 1 * (2**(4));
  104.     ftSucc                        = 1 * (2**(7));
  105.  
  106.     
  107. TYPE
  108.     FTFlags = LONGINT;
  109.  
  110.  
  111. CONST
  112.     ftSameCircuit                = 1 * (2**(0));
  113.     ftSendDisable                = 1 * (2**(1));
  114.     ftReceiveDisable            = 1 * (2**(2));
  115.     ftTextOnly                    = 1 * (2**(3));
  116.     ftNoStdFile                    = 1 * (2**(4));
  117.     ftMultipleFileSend            = 1 * (2**(5));
  118.  
  119.     
  120. TYPE
  121.     FTAttributes = INTEGER;
  122.  
  123.  
  124. CONST
  125.     ftReceiving                    = 0;
  126.     ftTransmitting                = 1;
  127.  
  128.     
  129. TYPE
  130.     FTDirection = INTEGER;
  131.  
  132. {    application routines type definitions }
  133.     FTPtr = ^FTRecord;
  134.     FTHandle = ^FTPtr;
  135.  
  136.     FileTransferDefProcPtr = ProcPtr;  { FUNCTION FileTransferDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  137.     FileTransferReadProcPtr = ProcPtr;  { FUNCTION FileTransferRead(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  138.     FileTransferWriteProcPtr = ProcPtr;  { FUNCTION FileTransferWrite(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  139.     FileTransferSendProcPtr = ProcPtr;  { FUNCTION FileTransferSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags): Size; }
  140.     FileTransferReceiveProcPtr = ProcPtr;  { FUNCTION FileTransferReceive(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags): Size; }
  141.     FileTransferEnvironsProcPtr = ProcPtr;  { FUNCTION FileTransferEnvirons(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): OSErr; }
  142.     FileTransferNotificationProcPtr = ProcPtr;  { PROCEDURE FileTransferNotification(hFT: FTHandle; pFSSpec: FSSpecPtr); }
  143.     FileTransferChooseIdleProcPtr = ProcPtr;  { PROCEDURE FileTransferChooseIdle; }
  144.     FileTransferDefUPP = UniversalProcPtr;
  145.     FileTransferReadUPP = UniversalProcPtr;
  146.     FileTransferWriteUPP = UniversalProcPtr;
  147.     FileTransferSendUPP = UniversalProcPtr;
  148.     FileTransferReceiveUPP = UniversalProcPtr;
  149.     FileTransferEnvironsUPP = UniversalProcPtr;
  150.     FileTransferNotificationUPP = UniversalProcPtr;
  151.     FileTransferChooseIdleUPP = UniversalProcPtr;
  152.  
  153.     FTRecord = PACKED RECORD
  154.         procID:                    INTEGER;
  155.         flags:                    FTFlags;
  156.         errCode:                FTErr;
  157.         refCon:                    LONGINT;
  158.         userData:                LONGINT;
  159.         defProc:                FileTransferDefUPP;
  160.         config:                    Ptr;
  161.         oldConfig:                Ptr;
  162.         environsProc:            FileTransferEnvironsUPP;
  163.         reserved1:                LONGINT;
  164.         reserved2:                LONGINT;
  165.         ftPrivate:                Ptr;
  166.         sendProc:                FileTransferSendUPP;
  167.         recvProc:                FileTransferReceiveUPP;
  168.         writeProc:                FileTransferWriteUPP;
  169.         readProc:                FileTransferReadUPP;
  170.         owner:                    WindowPtr;
  171.         direction:                FTDirection;
  172.         theReply:                SFReply;
  173.         writePtr:                LONGINT;
  174.         readPtr:                LONGINT;
  175.         theBuf:                    ^CHAR;
  176.         bufSize:                LONGINT;
  177.         autoRec:                Str255;
  178.         attributes:                FTAttributes;
  179.     END;
  180.  
  181.  
  182. CONST
  183. { FTReadProc messages }
  184.     ftReadOpenFile                = 0;                            { count = forkFlags, buffer = pblock from PBGetFInfo }
  185.     ftReadDataFork                = 1;
  186.     ftReadRsrcFork                = 2;
  187.     ftReadAbort                    = 3;
  188.     ftReadComplete                = 4;
  189.     ftReadSetFPos                = 6;                            { count = forkFlags, buffer = pBlock same as PBSetFPos }
  190.     ftReadGetFPos                = 7;                            { count = forkFlags, buffer = pBlock same as PBGetFPos }
  191. { FTWriteProc messages }
  192.     ftWriteOpenFile                = 0;                            { count = forkFlags, buffer = pblock from PBGetFInfo }
  193.     ftWriteDataFork                = 1;
  194.     ftWriteRsrcFork                = 2;
  195.     ftWriteAbort                = 3;
  196.     ftWriteComplete                = 4;
  197.     ftWriteFileInfo                = 5;
  198.     ftWriteSetFPos                = 6;                            { count = forkFlags, buffer = pBlock same as PBSetFPos }
  199.     ftWriteGetFPos                = 7;                            { count = forkFlags, buffer = pBlock same as PBGetFPos }
  200. {    fork flags }
  201.     ftOpenDataFork                = 1;
  202.     ftOpenRsrcFork                = 2;
  203.  
  204.     uppFileTransferDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  205.     uppFileTransferReadProcInfo = $00002FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; }
  206.     uppFileTransferWriteProcInfo = $00002FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; }
  207.     uppFileTransferSendProcInfo = $0000AFF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param): 4 byte result; }
  208.     uppFileTransferReceiveProcInfo = $0000EFF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param): 4 byte result; }
  209.     uppFileTransferEnvironsProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  210.     uppFileTransferNotificationProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  211.     uppFileTransferChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  212.  
  213. FUNCTION NewFileTransferDefProc(userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  214.     {$IFC NOT GENERATINGCFM }
  215.     INLINE $2E9F;
  216.     {$ENDC}
  217.  
  218. FUNCTION NewFileTransferReadProc(userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  219.     {$IFC NOT GENERATINGCFM }
  220.     INLINE $2E9F;
  221.     {$ENDC}
  222.  
  223. FUNCTION NewFileTransferWriteProc(userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  224.     {$IFC NOT GENERATINGCFM }
  225.     INLINE $2E9F;
  226.     {$ENDC}
  227.  
  228. FUNCTION NewFileTransferSendProc(userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  229.     {$IFC NOT GENERATINGCFM }
  230.     INLINE $2E9F;
  231.     {$ENDC}
  232.  
  233. FUNCTION NewFileTransferReceiveProc(userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  234.     {$IFC NOT GENERATINGCFM }
  235.     INLINE $2E9F;
  236.     {$ENDC}
  237.  
  238. FUNCTION NewFileTransferEnvironsProc(userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  239.     {$IFC NOT GENERATINGCFM }
  240.     INLINE $2E9F;
  241.     {$ENDC}
  242.  
  243. FUNCTION NewFileTransferNotificationProc(userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  244.     {$IFC NOT GENERATINGCFM }
  245.     INLINE $2E9F;
  246.     {$ENDC}
  247.  
  248. FUNCTION NewFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  249.     {$IFC NOT GENERATINGCFM }
  250.     INLINE $2E9F;
  251.     {$ENDC}
  252.  
  253. FUNCTION CallFileTransferDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  254.     {$IFC NOT GENERATINGCFM}
  255.     INLINE $205F, $4E90;
  256.     {$ENDC}
  257.  
  258. FUNCTION CallFileTransferReadProc(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): OSErr;
  259.     {$IFC NOT GENERATINGCFM}
  260.     INLINE $205F, $4E90;
  261.     {$ENDC}
  262.  
  263. FUNCTION CallFileTransferWriteProc(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): OSErr;
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $205F, $4E90;
  266.     {$ENDC}
  267.  
  268. FUNCTION CallFileTransferSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags; userRoutine: FileTransferSendUPP): Size;
  269.     {$IFC NOT GENERATINGCFM}
  270.     INLINE $205F, $4E90;
  271.     {$ENDC}
  272.  
  273. FUNCTION CallFileTransferReceiveProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags; userRoutine: FileTransferReceiveUPP): Size;
  274.     {$IFC NOT GENERATINGCFM}
  275.     INLINE $205F, $4E90;
  276.     {$ENDC}
  277.  
  278. FUNCTION CallFileTransferEnvironsProc(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): OSErr;
  279.     {$IFC NOT GENERATINGCFM}
  280.     INLINE $205F, $4E90;
  281.     {$ENDC}
  282.  
  283. PROCEDURE CallFileTransferNotificationProc(hFT: FTHandle; pFSSpec: FSSpecPtr; userRoutine: FileTransferNotificationUPP);
  284.     {$IFC NOT GENERATINGCFM}
  285.     INLINE $205F, $4E90;
  286.     {$ENDC}
  287.  
  288. PROCEDURE CallFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleUPP);
  289.     {$IFC NOT GENERATINGCFM}
  290.     INLINE $205F, $4E90;
  291.     {$ENDC}
  292.  
  293. FUNCTION InitFT: FTErr;
  294. FUNCTION FTGetVersion(hFT: FTHandle): Handle;
  295. FUNCTION FTGetFTVersion: INTEGER;
  296. FUNCTION FTNew(procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  297. PROCEDURE FTDispose(hFT: FTHandle);
  298. FUNCTION FTStart(hFT: FTHandle; direction: FTDirection; {CONST}VAR fileInfo: SFReply): FTErr;
  299. FUNCTION FTAbort(hFT: FTHandle): FTErr;
  300. FUNCTION FTSend(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  301. FUNCTION FTReceive(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  302. PROCEDURE FTExec(hFT: FTHandle);
  303. PROCEDURE FTActivate(hFT: FTHandle; activate: BOOLEAN);
  304. PROCEDURE FTResume(hFT: FTHandle; resume: BOOLEAN);
  305. FUNCTION FTMenu(hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  306. FUNCTION FTChoose(VAR hFT: FTHandle; where: Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  307. PROCEDURE FTEvent(hFT: FTHandle; {CONST}VAR theEvent: EventRecord);
  308. FUNCTION FTValidate(hFT: FTHandle): BOOLEAN;
  309. PROCEDURE FTDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  310. FUNCTION FTSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  311. PROCEDURE FTSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  312. FUNCTION FTSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  313. PROCEDURE FTSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  314. PROCEDURE FTSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  315. PROCEDURE FTSetupPostflight(procID: INTEGER);
  316. FUNCTION FTGetConfig(hFT: FTHandle): Ptr;
  317. FUNCTION FTSetConfig(hFT: FTHandle; thePtr: UNIV Ptr): INTEGER;
  318. FUNCTION FTIntlToEnglish(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  319. FUNCTION FTEnglishToIntl(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  320. PROCEDURE FTGetToolName(procID: INTEGER; VAR name: Str255);
  321. FUNCTION FTGetProcID(name: ConstStr255Param): INTEGER;
  322. PROCEDURE FTSetRefCon(hFT: FTHandle; refCon: LONGINT);
  323. FUNCTION FTGetRefCon(hFT: FTHandle): LONGINT;
  324. PROCEDURE FTSetUserData(hFT: FTHandle; userData: LONGINT);
  325. FUNCTION FTGetUserData(hFT: FTHandle): LONGINT;
  326. PROCEDURE FTGetErrorString(hFT: FTHandle; id: INTEGER; VAR errMsg: Str255);
  327.  
  328. {$ALIGN RESET}
  329. {$POP}
  330.  
  331. {$SETC UsingIncludes := FileTransfersIncludes}
  332.  
  333. {$ENDC} {__FILETRANSFERS__}
  334.  
  335. {$IFC NOT UsingIncludes}
  336.  END.
  337. {$ENDC}
  338.